package si.banst.tecajnice.ejb;

import java.util.Date;
import java.util.List;

import javax.ejb.Remote;

import si.banst.tecajnice.ejb.napake.NapakaPriPosodobitvi;
import si.banst.tecajnice.ejb.napake.NapakaPriPovprasevanju;
import si.banst.tecajnice.ejb.napake.NapakaPriPreracunu;
import si.banst.tecajnice.ejb.napake.NapakaPriZapisu;
import si.banst.tecajnice.entitete.Tecaj;
import si.banst.tecajnice.entitete.TecajID;
import si.banst.tecajnice.entitete.Tecajnica;
import si.banst.tecajnice.entitete.TecajnicaID;
import si.banst.tecajnice.entitete.VrstaTecajnice;

@Remote
public interface TecajniceBeanRemote {

	public List<VrstaTecajnice> vrniVseVrsteTecajnic()
			throws NapakaPriPovprasevanju;

	public VrstaTecajnice vrniVrstoTecajnice(int sifraVrsteTecajnice)
			throws NapakaPriPovprasevanju;

	public VrstaTecajnice vrniVrstoTecajniceBSi() throws NapakaPriPovprasevanju;

	public void zapisiVrstoTecajnice(VrstaTecajnice vrstaTecajnice)
			throws NapakaPriZapisu;

	public void posodobiVrstoTecajnice(VrstaTecajnice vrstaTecajnice)
			throws NapakaPriPosodobitvi;

	public Tecajnica vrniTecajnico(TecajnicaID tecajnicaID)
			throws NapakaPriPovprasevanju;

	public Tecajnica vrniZadnjoTecajnico(int sifraVrsteTecajnice)
			throws NapakaPriPovprasevanju;

	public void posodobiTecajnico(Tecajnica tecajnica)
			throws NapakaPriPosodobitvi;

	public Tecajnica preracunajTecajnico(int sifraVrsteTecajnice,
			Date datumTecajnice, Boolean ponovnoPreracunajObstojece)
			throws NapakaPriPreracunu;

	public List<Tecaj> vrniVseNeaktivneTecaje() throws NapakaPriPovprasevanju;

	public Tecaj vrniTecaj(TecajID tecajID) throws NapakaPriPovprasevanju;

	public List<Tecaj> vrniTecaje(List<TecajID> tecajID)
			throws NapakaPriPovprasevanju;

	public void zapisiTecaj(Tecaj tecaj) throws NapakaPriZapisu;

	public void posodobiTecaj(Tecaj tecaj) throws NapakaPriPosodobitvi;

	public void posodobiTecaje(List<Tecaj> tecaji) throws NapakaPriPosodobitvi;
}